//axios的封装
// 1-引入axios
import axios from 'axios';

// 2-添加axios的默认属性，请求超时时间
axios.defaults.timeout = 5000;

// 3-定义基本地址
axios.defaults.baseURL = '/sisp';

// 4-请求拦截
axios.interceptors.request.use((config) => {
    // console.log('config',config)
    // 1.设置token
    let token = localStorage.getItem('token')
    if(token){
        config.headers['token'] = token
    }
    // 2.设置请求头类型 content-type
    if(config.method == 'get'){ 
        config.headers['content-type'] = 'application/x-www-form-urlencoded'
    }
    if(config.method == 'post'){
        config.headers['content-type'] = 'application/json'
    }
    // if(config.method == 'delete'){
    //     config.headers['content-type'] = 'application/x-www-form-urlencoded'
    // }
    // 3.设置loading效果
    // 4.对请求参数的处理

    return config
})

// 5-响应拦截
axios.interceptors.response.use(response => {
    // console.log('response',response)
    if(response.status == 200){
        return response;// 返回响应数据
    } else {
        return Promise.reject(response);// 返回错误
    }
},
    (error) => {
        if(error.response){
            switch(error.response.status){
                case 401:
                    console.log('暂无权限');
                    break;
                case 404:
                    console.log('接口地址不存在');
                    break;
                case 500:
                    console.log('服务错误');
                    break;
                default:
                    console.log('错误',error.message);
            }

        } else if(error.request){
            console.log('请求错误',error.request);
        } else {
            console.log('其他错误',error.message);
        }
        return Promise.reject(error)
    }
)

// 6-抛出
export default axios